-- $LastChangedDate: 2007-06-01 02:52:33 +0200 (Fri, 01 Jun 2007) $
-- $LastChangedRevision: 149 $
-- $LastChangedBy: vicente $

SEPARATE (Tareas.Sseguimiento)

   -- Buscar la medicion del cliente identificado por el task_id Cid
   -- en la lista de mediciones de clientes. Si no tiene una medicion
   -- asignada devuelve un valor verdadero en Clientesinmedicion.
PROCEDURE Get_Medicion (
      Clist              :        Listas.Sseguimiento_Lists.List_Type;
      Cid                : IN     Task_Id;
      M                  :    OUT Medicionbiometrica;
      Clientesinmedicion :    OUT Boolean) IS
   Encontrado : Boolean                                 := False;
   It         : Listas.Sseguimiento_Lists.List_Iterator;
   Nodo       : Nodoseguimiento;
BEGIN
   It := Listas.Sseguimiento_Lists.First(Clist);
   WHILE It /= Listas.Sseguimiento_Lists.Last(Clist) AND NOT
         Encontrado LOOP
      Nodo := Listas.Sseguimiento_Lists.Value(It);
      IF Nodo.Cid = Cid THEN
         Encontrado:= True;
      ELSE
         It := Listas.Sseguimiento_Lists.Succ(It);
      END IF;
   END LOOP;

   -- si no encuentra una entrada para el cliente devuelve verdadero
   IF NOT Encontrado THEN
      Clientesinmedicion:= True;
      Print("get_medicion: El cliente no tiene ninguna medicion");
   ELSE
      M:= Nodo.Medicion;
      Clientesinmedicion:=False;
   END IF;
END Get_Medicion;
